# locust777

//
//&&  左边为假，右边就不计算了  
//||  左边为真右边就不计算了

////&&的使用实例
//#include<stdio.h>
//#include<windows.h>
//int main()
//{
//	int i = 0,a = 0,b = 2,c = 3,d= 4;
//	i = a++ && ++b && d++;  //错误示范0 && 3 && 4 == 0  //多运算符则表示判断bool，0，1
//	// 注意a==0，则上述为零，后面的++b，d++不在运行
//	
//	printf("i = %d\n",i);  // 0
//	printf(" a =%d\n b = %d\n c = %d\n d = %d\n",a,b,c,d);
//	//      1        2        3        4
//	system("pause");
//
//
//return 0;
//}



////与上述的 || 使用案例
//#include<stdio.h>
//#include<windows.h>
//int main()
//{
//	int i = 0,a = 0,b = 2,c = 3,d= 4;
//    i = a++ || ++b || d++; // 0 || 3   ==  1
//	printf("i = %d\n",i);  // 1
//	printf(" a =%d\n b = %d\n c = %d\n d = %d\n",a,b,c,d);
//	//      1        3        3        4
//	system("pause");
//
//
//return 0;
//}


//
//#include<stdio.h>
//#include<windows.h>
//int main()
//{
//	int a = 3;
//	int b = 0;
//	int max = (a > b ? a : b);
//	//用三目操作符将大的放在max里面
//
//	if(a > 5)
//		b = 3;
//	else
//		b = -3;
//
//	//上述if语句可用三目操作符进行替换 //(a > 5) ? (b = 3):(b = -3);
//
//	b = (a > 5 ? 3 : -3); //用三目操作符判断赋值
//	return 0;
//
//
//return 0;
//}



//
////逗号表达式，的使用方法
////逗号表达式，用逗号隔开多个表达式，从左到右依次进行
////表达式的结果是最后一个个表达式的结果
//
//
////小技巧 TAB 键可直接对其
//#include<stdio.h>
//#include<windows.h>
//int main()
//{
//	int a = 1;
//	int b = 2;
//	int c = (a > b,a = b + 10,a,b = a + 1);
//	//从左到右依次计算，最后一次输出的是最后一个式子的值
//	//最后一个添加a > b,则c输出的值为0；
//	printf("c=%d\n",c); // c = 13
//	system("pause");
//return 0;
//}



//逗号在while中的特别使用
/*
a = get_val();
count_val(a);
while(a > 0)
{
//业务处理
}


//如果使用逗号表达式，改写：

while(a = get_val(),count_val(a),a>0)  //从左到右依次计算，输出最后一个式子
       1             2           3
{
//业务处理
}

*/



//#include<stdio.h>
//#include<windows.h>
//int main()
//{
//	int arr[10] = {0};
//	//
//	//arr[7] --> *(arr+7) --> *(7+arr)
//	//arr是数组首元素的地址
//	//arr+7就是跳过7个元素,指向第8个元素
//	//*(arr+7)就是第8个元素
//	//
//	arr[7] = 8; //后期需要加强数组的学习与使用
//	7[arr] = 9;
//
//	//[] arr 7
//	//3 + 5;
//	//5 + 3;
//
//
//	system("pause");
//return 0;
//}




////函数调用操作符(),的实例
////函数定义
//int Add(int x,int y)
//{
//return x + y;
//}
//
//#include<stdio.h>
//#include<windows.h>
//int main()
//{
//	int a = 10;
//	int b = 20;
//	//函数调用
//	printf("%d\n",Add(a,b));// ()就是函数调用操作符 , 操作数 Add,a,b
//
//sizeof a;
//	system("pause");
//return 0;
//}




//访问一个结构体的成员
#include<stdio.h>
#include<windows.h>
#include<string.h>
struct Stu
{
	char name[20];
	int age;
	double score;
};

void set_stu(struct Stu* ps)//结构体指针
{
	//strcpy((*ps).name,"zhangsan"); 
	//(*ps).age = 20;
	//(*ps).score = 100.0;
	strcpy(ps->name,"zhangsan"); //结构体指针->成员
	ps->age = 20;
	ps->score = 100.0;

}

//void print_stu(struct Stu ss)//结构体对象
//{
//	printf("%s %d %lf",ss.name,ss.age,ss.score);//结构体对象.成员
//}

void print_stu(struct Stu* ps)//指针型
{
	printf("%s %d %lf",ps->name,ps->age,ps->score);//指针型
}

int main()
{
	struct Stu s = {0};
	set_stu(&s);   //指针型要使用，取地址&
	print_stu(&s);  //同理，指针型要使用，取地址&
	system("pause");
	return 0;

}
